

-- 表2

-- 字典的申明
a={["name"]="bilibli",["age"]=111}
-- 字典访问
print(a["name"])
print(a["age"])
print(a.name)
-- 修改
a["name"]="toutou"
a["age"]=222
print(a["name"]..a["age"])
a.name="jiaojiao"
a.age=333
print(a.name..a.age)
-- 新增
a["address"]="tian"
-- 取值
print(a.address)
-- 删除
a.address= nil;

-- 字典的遍历
for k,v in pairs(a) do
	print(k,v)
end



-- 类和结构体

-- 类
Student={
	age=11,
	name="aaa",
	address="bbb",

	method1= function (  )
		 print("method1")
		 -- 调用类 内部的属性
		 print("调用 类自带的属性"..Student.name)
	end,
	method2= function ( clazz )
		 print("method2")
		 print("调用 类自带的属性"..clazz.address)
	end,
	method5= function ( clazz )
		 print("method5")
		 print("调用 类自带的方法")
		 clazz.method2(clazz)
	end,

}
print(Student.age);
Student.method1();
Student.method2(Student);
-- 冒号调用方法，会默认把调用者作为第一个参数传入方法中
Student:method2();

Student.method5(Student);

-- 申明表过后，在表外去申明变量和方法
Student.num=8888888
Student.method3=function ( )
		print("method3"..Student.num) 
end
Student.method3();

function Student.method4( ) 
	print("method4")
end
function Student:method7( )
	print("默认的调用参数：：")
	print(self.name)
end

Student.method4() 
Student:method7();



-- 表的公共操作

t1={{age=1,name="123"},{age=2,name="456"}}
t2={name="大爷",sex=true}

-- 插入
table.insert(t1,t2);   --把t2的表插入t1中 
-- 删除
table.remove(t1)  --传表进去，会移除最后一个索引内容
table.remove(t1,1) --第二个参数，要移除内容的索引
-- 排序
t3={8,4,6,2,1,7}
-- 升序
print("升序")
table.sort(t3);
for i,v in ipairs(t3) do
	print(v)
end
-- 降序
print("降序")
 table.sort(t3,function (a,b )
 	if(a>b)then
 		return true
 	end
 end)
 for i,v in ipairs(t3) do
 	print(v)
 end

 -- 拼接
 tb={"123","456","789","1010"}
 str=table.concat(tb,":")
 print(str)
